Skip to content

Fix saving to an icloud folder. - #317

Open
tenderlove wants to merge 1 commit into
merlos:masterfrom
tenderlove:icloud-folder
Open

Fix saving to an icloud folder.#317
tenderlove wants to merge 1 commit into
merlos:masterfrom
tenderlove:icloud-folder

Conversation

@tenderlove

Copy link
Copy Markdown

I had set an icloud folder is the default save location, but after a while the app stopped saving tracking files. I think there was a permissions error, but the error was swallowed.

I'm not an iOS developer at all, so I don't know if this is the correct fix. This is what Claude told me:

When you first pick the folder in the document picker, iOS hands the
app a URL with a live access grant that stays valid for the rest of that
app run. So in that session — and until you fully quit the app —
saveToURL can write to the iCloud folder even without unlocking it. It
genuinely works.

After you force-quit and relaunch, that live grant is gone. Now the
only way back to the folder is the persisted bookmark
(Preferences.swift:343). Resolving the bookmark gives you the URL back,
but on iOS a resolved bookmark URL is locked until you call
startAccessingSecurityScopedResource(). And notice the getter doesn't
hold that open — it only unlocks briefly if the bookmark is stale
(:351-359), then immediately re-locks via defer.

This might fix #306, but I'm not sure how to test.

I had set an icloud folder is the default save location, but after a
while the app stopped saving tracking files.  I think there was a
permissions error, but the error was swallowed.

I'm not an iOS developer at all, so I don't know if this is the correct
fix.  This is what Claude told me:

> When you first pick the folder in the document picker, iOS hands the
> app a URL with a live access grant that stays valid for the rest of that
> app run. So in that session — and until you fully quit the app —
> saveToURL can write to the iCloud folder even without unlocking it. It
> genuinely works.

> After you force-quit and relaunch, that live grant is gone. Now the
> only way back to the folder is the persisted bookmark
> (Preferences.swift:343). Resolving the bookmark gives you the URL back,
> but on iOS a resolved bookmark URL is locked until you call
> startAccessingSecurityScopedResource(). And notice the getter doesn't
> hold that open — it only unlocks briefly if the bookmark is stale
> (:351-359), then immediately re-locks via defer.

This might fix merlos#306, but I'm not sure how to test.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Save default to iCloud works intermittently?

1 participant